<template>
  <div class="assessment-table">
    <table>
      <thead>
        <tr>
          <th width="10%">一级指标</th>
          <th width="10%">二级指标</th>
          <th width="10%">主要观测点</th>
          <th width="38%">评级标准</th>
          <th width="16%">自评等级</th>
          <th width="16%">自评情况</th>
        </tr>
      </thead>
      <tbody>
        <tr class="1_1_1">
          <td rowspan="3">1.指导思想与建设规划</td>
          <td rowspan="2"><span class="red-star">*</span>1.1专业定位</td>
          <td>培养目标</td>
          <td>
            A级 目标明确、具体<br />
            C级 目标比较明确
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[0].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[0].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="1_1_2">
          <td>定位与特色</td>
          <td>
            A级 定位准确，具有一定的学科基础和科研基础，符合学校定位及自身办学条件，特色鲜明<br />
            C级 定位基本准确，基本符合学校定位及自身办学条件
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[1].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[1].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>

        <tr class="1_2_1">
          <td><span class="red-star">*</span>1.2专业规划</td>
          <td>建设规划与实施方案</td>
          <td>
            A级 规划科学、合理，措施得当，并有效实施<br />
            C级 有发展规划并加以实施
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[2].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[2].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>

        <tr class="2_1_1">
          <td rowspan="8">2.师资队伍</td>
          <td rowspan="4"><span class="red-star">*</span>2.1师资数量与结构</td>
          <td>专任教师人数与生师比</td>
          <td>
            A级 达到国标要求或合格评估要求<br />
            C级 专人教师基本满足教学需要，师生比≥25：1
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[3].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[3].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="2_1_2">
          <td>整体结构状态与发展趋势</td>
          <td>
            A级
            结构合理，发展趋势良好，有系统的、科学的规划和配套政策，机制完善、措施得力，成效明显，有切实可行的年青教师培养计划<br />
            C级 结构基本合理，有规划和政策，注重青年教师培养
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[4].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[4].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="2_1_3">
          <td>专任教师中研究生学位比例</td>
          <td>
            A级 达到国标要求或合格评估要求<br />
            C级 30-40%
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[5].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[5].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="2_1_4">
          <td>专任教师中研究生学位比例</td>
          <td>
            A级 专业实践教学师资队伍配备齐全，结构合理，完全满足实践教学需要<br />
            C级 结构较合理，基本满足实践教学需要
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[6].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[6].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>

        <tr class="2_2_1">
          <td rowspan="4">2.2主讲教师</td>
          <td>专任教师中研究生学位比例</td>
          <td>
            A级 达到国标要求或合格评估要求<br />
            C级 符合岗位资格的教师达80-90%，有相当数量本专业毕业的教师（50%—60%）
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[7].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[7].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="2_2_2">
          <td>专任教师中研究生学位比例</td>
          <td>
            A级 教授、副教授近三年内每年均为本科生授课<br />
            C级 教授、副教授每学年95%以上为本科生授课
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[8].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[8].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="2_2_3">
          <td>专任教师中研究生学位比例</td>
          <td>
            A级 教学水平高，有较好的教学质量<br />
            C级 教学过程规范，能保证教学质量
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[9].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[9].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="2_2_4">
          <td>专任教师中研究生学位比例</td>
          <td>
            A级 科研成果较多，科研促进教学成效明显<br />
            C级 有一定的科研成果，满足专业发展需要
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[10].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[10].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>

        <tr class="3_1_1">
          <td rowspan="2">3.教学基本设施</td>
          <td rowspan="2">3.1教学基本设施</td>
          <td>实验室、实习基地</td>
          <td>
            A级
            设施设备与功能完善；能满足实践教学需要，达到国家规定标准，管理先进高效；有稳定的校内外实习基地，签定协议书<br />
            C级 设施设备能满足教学基本要求，有管理措施；有一定数量的校内外实习基地，有协议书
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[11].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[11].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="3_1_2">
          <td>图书资料</td>
          <td>
            A级 达到评估要求<br />
            C级 基本满足教学需要，有使用效果。
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[12].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[12].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>

        <tr class="4_1_1">
          <td rowspan="11">4.教学建设与改革</td>
          <td rowspan="2"><span class="red-star">*</span>4.1培养方案</td>
          <td>制定</td>
          <td>
            A级
            符合培养目标的要求，课程体系优化、学分设置合理，体现知识、能力、素质协调发展，有利于学生综合素质和个性化培养<br />
            C级 方案较为科学，注重了对学生知识、能力和素质的培养，基本能反映培养目标要求
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[13].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[13].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="4_1_2">
          <td>执行</td>
          <td>
            A级 能严格执行<br />
            C级 基本能够执行
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[14].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[14].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>

        <tr class="4_2_1">
          <td rowspan="5"><span class="red-star">*</span>4.2课程</td>
          <td>教学大纲</td>
          <td>
            A级 符合人才培养目标，满足课程教学的基本要求，符合学生学习实际，严格执行<br />
            C级 基本符合人才培养要求，满足课程教学要求，符合学生实际
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[15].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[15].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="4_2_2">
          <td>教案或讲义</td>
          <td>
            A级 教案详实具体，在课堂教学中发挥重要作用<br />
            C级 有具体的教案或讲义，发挥一定指导作用
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[16].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[16].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="4_2_3">
          <td>教材选用与建设</td>
          <td>
            A级
            有科学的教材选用和评价制度，执行严格。选用获奖教材和近三年出版的新教材，使用效果好；有重点支持的教材编写规划和措施<br />
            C级
            有科学的教材选用和评估制度，主干课程选用获奖教材或公认水平较高的优秀教材并注意选用近三年出版的新教材
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[17].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[17].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="4_2_4">
          <td>双语教学</td>
          <td>
            A级 有实施双语教学的激励措施和政策，教学效果教好<br />
            C级 重视并实施双语教学，有一定数量的双语教学课程
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[18].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[18].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="4_2_5">
          <td>重点课程建设情况</td>
          <td>
            A级 结构合理，内容丰富，教学效果好，辐射带动作用明显<br />
            C级 结构基本合理，内容详实，教学效果良好，有一定的辐射带动作用
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[19].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[19].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>

        <tr class="4_3_1">
          <td>4.3教学方法与教学手段</td>
          <td>教学方法改进与多媒体授课情况</td>
          <td>
            A级 教学方法灵活多样，效果显著<br />
            C级 具备较完善的现代教育技术设施，积极改进教学方法，应用效果较好
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[20].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[20].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>

        <tr class="4_4_1">
          <td rowspan="3"><span class="red-star">*</span>4.4实践教学</td>
          <td>实践教学内容与体系</td>
          <td>
            A级
            注重内容更新，体系设计科学合理，符合培养目标要求，创造条件使学生较早参加科研和创新活动，效果好<br />
            C级 基本符合培养目标的要求，实验开出率达到教学大纲要求的90%（先达C级标准，再考虑A级）
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[21].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[21].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="4_4_2">
          <td>综合性、设计性实验（或实习）的比例</td>
          <td>
            A级 有综合性、设计性实验的课程占有实验的课程总数达到国标或合格评估要求<br />
            C级 有综合性、设计性实验的课程占有实验的课程总数的比例40%-60%
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[22].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[22].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="4_4_3">
          <td>实验室（或资料室）开放情况</td>
          <td>
            A级 实验室开放时间长，开放范围及覆盖面广，利用率高<br />
            C级 有开放性实验室，有一定效果
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[23].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[23].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>

        <tr class="5_1_1">
          <td rowspan="6">5.教学效果</td>
          <td rowspan="2"><span class="red-star">*</span>5.1基本理论与基本技能</td>
          <td>学生基本理论与基本技能的实际水平</td>
          <td>
            A级 学生理论基础扎实，动手能力强<br />
            C级 学生掌握基本理论较好，具有一定动手操作能力。
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[24].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[24].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="5_1_2">
          <td>学生的创新精神与实践能力</td>
          <td>
            A级 有较多的省部级以上科研成果奖或学科竞赛奖<br />
            C级 有一定数量的省部级以上科研成果奖或学科竞赛奖
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[25].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[25].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>

        <tr class="5_2_1">
          <td rowspan="2"><span class="red-star">*</span>5.2毕业论文</td>
          <td>选题的性质、难度、分量、综合训练等情况</td>
          <td>
            A级 结合实际，能全面反映培养目标要求<br />
            C级 能结合实际，基本符合培养目标要求
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[26].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[26].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="5_2_2">
          <td>论文（或设计）质量</td>
          <td>
            A级 符合学术规范，有一定的创新，质量好<br />
            C级 论文或设计规范，质量一般
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[27].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[27].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>

        <tr class="5_3_1">
          <td rowspan="2">5.3社会声誉</td>
          <td>就业</td>
          <td>
            A级 应届毕业生年底就业率≥95%，就业工作措施得力，效果显著<br />
            C级 应届毕业生年底就业率达85-90%，就业工作有措施，有效果
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[28].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[28].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="5_3_2">
          <td>社会评估</td>
          <td>
            A级 社会评估好，用人单位满意<br />
            C级 有一定的社会声誉，用人单位较满意
          </td>
          <td>
            <a-radio-group
              disabled
              name="radioGroup"
              v-model:value="formItems[29].level"
              @change="calc()"
            >
              <a-radio value="1">A</a-radio>
              <a-radio value="2">B</a-radio>
              <a-radio value="3">C</a-radio>
              <a-radio value="4">D</a-radio>
            </a-radio-group>
          </td>
          <td>
            <a-textarea
              disabled
              v-model:value="formItems[29].remark"
              :auto-size="{ minRows: 2, maxRows: 2 }"
            />
          </td>
        </tr>
        <tr class="countCss">
          <td colspan="3">所有项目评级合计</td>
          <td colspan="3">
            A级：<span>{{ formCounts.A }}</span> B级：<span>{{ formCounts.B }}</span> C级：<span>{{
              formCounts.C
            }}</span>
            D级：<span>{{ formCounts.D }}</span> （共30个）
          </td>
        </tr>
        <tr class="IcountCss">
          <td colspan="3">重要项目评级合计</td>
          <td colspan="3">
            A级：<span>{{ formCounts.IA }}</span> B级：<span>{{ formCounts.IB }}</span>
            C级：<span>{{ formCounts.IC }}</span> D级：<span>{{ formCounts.ID }}</span>
            （共21个）
          </td>
        </tr>
      </tbody>
    </table>
    <div class="button-submit">
      <a-button @click="disApprove">退回</a-button>
      <a-button @click="showModal" type="primary">通过</a-button>
      <a-modal
        v-model:open="open"
        title="通过审核"
        :confirm-loading="confirmLoading"
        @ok="handleOk"
      >
        <p>{{ modalText }}</p>
      </a-modal>
    </div>
  </div>
</template>

<script setup lang="ts">
import { reactive, ref, defineProps, defineEmits, onMounted, defineExpose } from 'vue';
import { message } from 'ant-design-vue';
import MajorScoreDao from '@/daos/majorScore_dao';
import MajorDao from '@/daos/major_dao';
import { getUserId, getUserName } from '@/base/constant';

const modalText = ref<string>('确认提交吗？');
const open = ref<boolean>(false);
const confirmLoading = ref<boolean>(false);

const props = defineProps<{
  fHeader: Headers;
}>();

interface Headers {
  job: string;
  college: string;
  conclusion: string;
  majorCode: string;
}

const majorScoreDao = new MajorScoreDao();
const majorDao = new MajorDao();

interface FormItem {
  name: string;
  level: string;
  remark: string;
  import: boolean;
}

interface FormCount {
  A: number;
  B: number;
  C: number;
  D: number;
  IA: number;
  IB: number;
  IC: number;
  ID: number;
}

const formItems = ref<FormItem[]>([
  {
    name: '1_1_1',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '1_1_2',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '1_2_1',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '2_1_1',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '2_1_2',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '2_1_3',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '2_1_4',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '2_2_1',
    level: '0',
    remark: '',
    import: false
  },
  {
    name: '2_2_2',
    level: '0',
    remark: '',
    import: false
  },
  {
    name: '2_2_3',
    level: '0',
    remark: '',
    import: false
  },
  {
    name: '2_2_4',
    level: '0',
    remark: '',
    import: false
  },
  {
    name: '3_1_1',
    level: '0',
    remark: '',
    import: false
  },
  {
    name: '3_1_2',
    level: '0',
    remark: '',
    import: false
  },
  {
    name: '4_1_1',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '4_1_2',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '4_2_1',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '4_2_2',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '4_2_3',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '4_2_4',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '4_2_5',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '4_3_1',
    level: '0',
    remark: '',
    import: false
  },
  {
    name: '4_4_1',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '4_4_2',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '4_4_3',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '5_1_1',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '5_1_2',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '5_2_1',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '5_2_2',
    level: '0',
    remark: '',
    import: true
  },
  {
    name: '5_3_1',
    level: '0',
    remark: '',
    import: false
  },
  {
    name: '5_3_2',
    level: '0',
    remark: '',
    import: false
  }
]);

const formCounts = reactive<FormCount>({
  A: 0,
  B: 0,
  C: 0,
  D: 0,
  IA: 0,
  IB: 0,
  IC: 0,
  ID: 0
});

const showModal = () => {
  open.value = true;
};

const handleOk = () => {
  confirmLoading.value = true;
  // 确认通过审核
  approve();
};

onMounted(() => {
  // 获取本地缓存
  loadLocalState();
});

// 根据专业代码获取相应评估数据
const getMajorScoreList = async (majorCode: string) => {
  const majorScoreList = await majorScoreDao.selectByMajorCode(majorCode);
  if (majorScoreList.data.data) {
    console.log('表单数据', majorScoreList.data.data);
    emit('toMajorInfo', majorScoreList.data.data.handlersName, majorScoreList.data.data.conclusion);
    emit('toReviewStatus', majorScoreList.data.data.review_status);
    assignValues(majorScoreList.data.data.formList);
  }else {
    emit('toReviewStatus', -1);
    emit('toMajorInfo', '', '');
  }
};

// 将表单数据展示到页面
function assignValues(majorScoreList: FormItem[]) {
  // 确保两个数组长度一致，避免越界错误
  if (formItems.value.length !== majorScoreList.length) {
    console.error('两个数组长度不一致，无法一一对应赋值');
    return;
  }
  for (let i = 0; i < formItems.value.length; i++) {
    const item1 = formItems.value[i];
    const item2 = majorScoreList[i];
    // 根据majorScoreList中的相应项更新formItems中的项
    item1.level = item2.level;
    item1.remark = item2.remark;
    // 计算重点专业数量
    calc();
  }
}

// 暴露方法给父组件
defineExpose({ getMajorScoreList, resetForm });

// 获取本地数据
function loadLocalState() {
  const data = JSON.parse(localStorage.getItem('professional_evaluation_data'));
  const header = JSON.parse(localStorage.getItem('professional_evaluation_header'));
  // 显示表单数据
  if (data) {
    formItems.value = data._rawValue;
  }
  // 显示表头数据
  if (header) {
    emit('formData', header);
  }
}

// 获取用户名
const userName = ref<string>(getUserName());

// 提交表单
async function submit() {
  if (checkItemSelect()) {
    let condition = await haveMajorScoreByCode();
    if (condition) {
      //禁用专业
      disabledMajor();
      message.warning('该专业已经评分，不可重复评分');
    } else {
      await majorScoreDao.saveMajorScore(
        props.fHeader.majorCode,
        props.fHeader.conclusion,
        formItems,
        userName.value
      );
      message.success('添加成功');
      disabledMajor();
    }
    resetAll();
    setTimeout(() => {
      open.value = false;
      confirmLoading.value = false;
    }, 1000);
  } else {
    message.error('还有专业或自评等级没填');
    open.value = false;
    confirmLoading.value = false;
  }
}

// 检查是否已经存在以专业代码查询的评估数据
const haveMajorScoreByCode = async () => {
  const majorScore = await majorScoreDao.selectByMajorCode(props.fHeader.majorCode);
  if (majorScore.data.data) return true;
  return false;
};

// 清空本地缓存
function removeData() {
  localStorage.removeItem('professional_evaluation_data');
  localStorage.removeItem('professional_evaluation_header');
}

// 暂存数据
async function storage() {
  let condition = await haveMajorScoreByCode();
  if (condition) {
    // 禁用专业
    message.warning('该专业已经评分，不可重复评分');
    resetAll();
  } else {
    localStorage.setItem('professional_evaluation_data', JSON.stringify(formItems));
    localStorage.setItem('professional_evaluation_header', JSON.stringify(props.fHeader));
    message.success('暂存成功');
  }
  disabledMajor();
  loadLocalState();
}

// 检查每个选项是否选中
function checkItemSelect() {
  if (props.fHeader.job === '') return false;
  for (let i = 0; i < formItems.value.length; i++) {
    if (formItems.value[i].level === '0') {
      return false;
    }
  }
  return true;
}

// 清零ABCD的个数
function resetFormCount() {
  formCounts.A = 0;
  formCounts.B = 0;
  formCounts.C = 0;
  formCounts.D = 0;
  formCounts.IA = 0;
  formCounts.IB = 0;
  formCounts.IC = 0;
  formCounts.ID = 0;
}

const emit = defineEmits<{
  (e: 'resetHeader'): void;
  (e: 'formData', value: Headers): void;
  (e: 'update'): void;
  (e: 'toMajorInfo', value1: string, value2: string): void;
  (e: 'toReviewStatus', value: number);
}>();

// 重置自评等级、自评情况、自评缓存数据
function resetAll() {
  // 清空本地缓存
  removeData();
  // 重置表单
  resetForm();
  // 重置表头
  emit('resetHeader');
  // 加载本地缓存
  loadLocalState();
  window.scrollTo({ top: 0, behavior: 'smooth' });
}

function resetForm() {
  for (let i = 0; i < formItems.value.length; i++) {
    formItems.value[i].level = '0';
    formItems.value[i].remark = '';
  }
  // 重新计算
  calc();
}

// 重置按钮的逻辑
async function reset() {
  let condition = await haveMajorScoreByCode();
  if (!condition) {
    await majorDao.unDisabledMajor(props.fHeader.majorCode);
  }
  emit('update');
  resetAll();
  message.success('重置成功');
}

// 计算ABCD的个数
function calc() {
  resetFormCount();
  formItems.value.forEach((item: FormItem) => {
    if (item.level === '1') {
      formCounts.A++;
      if (item.import) formCounts.IA++;
    } else if (item.level === '2') {
      formCounts.B++;
      if (item.import) formCounts.IB++;
    } else if (item.level === '3') {
      formCounts.C++;
      if (item.import) formCounts.IC++;
    } else if (item.level === '4') {
      formCounts.D++;
      if (item.import) formCounts.ID++;
    }
  });
}

// 修改专业禁用状态
const disabledMajor = () => {
  majorDao.disabledMajor(props.fHeader.majorCode);
  setTimeout(() => {
    emit('update');
  }, 500);
};

// 通过审核
async function approve() {
  const condition = await majorScoreDao.selectByMajorCode(props.fHeader.majorCode);
  if(!condition.data.data){
    message.error('该专业还没评分');
  }else if (condition.data.data.review_status === 1){
    message.error('该专业已审核');
  }else {
    await majorScoreDao.approve(props.fHeader.majorCode);
    message.success('审核通过');
    emit('toReviewStatus', 1)
  }
  setTimeout(() => {
    open.value = false;
    confirmLoading.value = false;
  }, 500);
}

// 审核不通过
async function disApprove() {
  console.log('调用disApprove');
  const condition = await majorScoreDao.selectByMajorCode(props.fHeader.majorCode);
  if(!condition.data.data){
    message.error('该专业还没评分');
  }else if (condition.data.data.review_status === 1){
    message.error('该专业已审核');
  }else {
    await majorScoreDao.disApprove(props.fHeader.majorCode);
    message.success('已退回');
    emit('toReviewStatus', 2)
  }
}
</script>

<style>
.assessment-table::before {
  content: '';
  display: block;
  font-weight: bold;
  margin-bottom: 10px;
}

.assessment-table {
  width: 100%;
  margin: 10px auto;
}

.assessment-table table {
  width: 100%;
  border-collapse: collapse;
}

.assessment-table th,
.assessment-table td {
  border: 1px solid #ccc;
  padding: 10px;
  text-align: left;
}

.assessment-table th {
  background-color: #f2f2f2;
}

.red-star {
  color: red;
}

.button-submit {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
}

.countCss span,
.IcountCss span {
  color: #0483d4;
  text-decoration: underline; /* span标签底部横线 */
  margin-right: 10px;
}
</style>
